package com.yuw.arr;

public class Test03 {

	public static void main(String[] args) {
		test03();
	}

	/**
	 * 二维数组定义和遍历
	 */
	private static void test03() {
		// 二维数组的声明和定义
		// 形式1
		int[][] arr0;
		arr0 = new int[3][3];
		// 形式2
		int[][] arr1 = new int[][] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
		// 形式3
		int[][] arr2 = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
		// 形式4
		int[][] arr3 = new int[3][];
		arr3[0] = new int[3];
		arr3[1] = new int[] { 3, 4, 5 };
		arr3[2] = new int[3];

		// 二维数组的遍历
		// 外层for循环遍历行数
		for (int i = 0; i < arr1.length; i++) {
			// 内层for循环遍历列数
			for (int j = 0; j < arr1[i].length; j++) {
				// 使用行标和列标取出对应元素的值
				int temp = arr1[i][j];
				System.out.print(" " + temp);
			}
			// 换行
			System.out.println();
		}

		System.out.println("=====================");
		// 外层for循环遍历行数
		for (int[] tempArr : arr1) {
			// 外层for循环的临时变量 tempArr获取的是二维数组的一行【一维数组】
			for (int temp : tempArr) {
				System.out.print(" " + temp);
			}
			// 换行
			System.out.println();
		}
	}

	/**
	 * 数组的赋值操作：数组的默认值改为-1
	 */
	private static void test023() {
		// 声明定义一个数组变量
		int[] arr0 = new int[5];
		// 将数组中的每个元素的值初始化为-1
		arr0[0] = -1;
		arr0[1] = -1;
		arr0[2] = -1;
		arr0[3] = -1;
		arr0[4] = -1;
	}

	/**
	 * 数组的赋值操作：使用for循环将数组的默认值改为-1
	 */
	private static void test024() {
		// 声明定义一个数组变量
		int[] arr0 = new int[5];
		// 将数组中的每个元素的值初始化为-1
		for (int i = 0; i < arr0.length; i++) {
			arr0[i] = -1;
		}

		System.out.println("数组初始化之后的元素内容为：");
		// 使用for循环遍历，赋值之后的数组元素的内容
		for (int i : arr0) {
			System.out.print(" " + i);

		}
		System.out.println();
	}

	/**
	 * 数组的默认值
	 */
	private static void test022() {
		// 声明定义一个数组变量
		int[] arr0 = new int[5];
		// System.out.println(" "+arr0);
		// 遍历该数组
		for (int temp : arr0) {
			System.out.print(" " + temp);
		}
		// 换行
		System.out.println();
	}

	/**
	 * 数组的增强型的for循环遍历
	 */
	private static void test021() {
		// 声明并初始化一个数组
		int[] arr0 = new int[] { 9, 8, 7, 6, 5, 43, 2, 1 };
		// 增强型的for循环:标准for循环的简写形式
		for (int temp : arr0) {
			// 遍历temp的值为每次循环时取出的元素的值
			System.out.print(" " + temp);
		}
		// 换行
		System.out.println();
	}

	/**
	 * 数组的for循环遍历
	 */
	private static void test02() {
		// 声明并初始化一个数组
		int[] arr0 = new int[] { 9, 8, 7, 6, 5, 43, 2, 1 };
		// for循环遍历数组
		for (int i = 0; i < arr0.length; i++) {
			// 取出数组小标为i的元素的值
			int temp = arr0[i];
			System.out.print(" " + temp);
		}
		// 换行
		System.out.println();
	}

	/**
	 * 数组的声明和初始化
	 */
	private static void test01() {
		// 声明
		int[] arr0;
		int arr1[];
		// 初始化
		arr0 = new int[5];
		arr1 = new int[] { 1, 2, 3, 4, 5 };
		// 声明和初始化可以合并写
		// 以下方式，声明和初始化不能够分开写
		int[] arr2 = { 1, 2, 3, 4, 5 };

		// 编译错误
		// int[] arr3;
		// arr3={1,2,3,4,5};

		int[][] arr10;
	}
}
